前一篇文章提到要使用 kind 和 minikube 來建立叢集。
這篇會介紹:
下一篇介紹:
在開始前補充介紹一項工具 kubectl:
是用來與 Kubernetes 叢集溝通的工具,例如在 nodes 上建立 pods、service 或其他 Kubernetes 元件都是透過 kubectl 下命令來執行。
待會在安裝 kind 及 minikube 時會使用類似 kind create cluster
或 minikube start
等指令,這些都是針對「叢集」物件去做操作。kubectl 則是與叢集溝通,負責建立「叢集內的物件」,例如 nodes、pods。
因為 kind 是使用 Docker 來建立及管理 Kubernetes 的環境,故先確認電腦上是否有安裝 Docker 或 Podman (與 Docker 相似的工具)。隨著 Kubernetes 的發展,kind 後續也開始支援 Docker 以外的 container runtime,像是 containerd 和 Podman。
kind 的安裝可以使用套件管理工具、二進制檔(binary)和其它等方式,這邊我是用 macOS 使用 Homebrew 來安裝 kind。
brew install kind
kind version
安裝豪不費力 XD。接著我們來試試看如何建立叢集。
kind create cluster
這邊特別要注意如果沒有啟動 Docker 就使用上述指令會報以下錯誤:
kind get clusters
kubectl cluster-info
docker images
docker ps
可以看見 kind 起了一個名為 kind-control-plane 的容器,也就是叢集中的 master。
還可以用 --name
為叢集取名:
kind create cluster --name kind-2023
一樣可以用 kind get clusters
列出所有叢集。
刪除預設的 kind 叢集:
kind delete cluster
或是指定要刪除的叢集名稱:
kind delete cluster --name kind-2023
最後都刪光。
minikube 是一個可以在本機執行的單節點或多節點 Kubernetes 叢集,使用 VM 或 Docker 在本機建立一個虛擬環境,並在該環境中安裝 Kubernetes。在 minikube 的容器中包含了所有叢集的相關元件(例如:kube-apiserver、kube-proxy 與 etcd 等)
此外 minikube 預先安裝好 container runtime (Docker engine),以便可以使用 Docker 來管理 Kubernetes 容器。
minikube 需透過 VM 或容器來執行,也就是本機需要安裝 drivers (VM or container) 才可以成功啟動 minikube。其中 Docker 為官方推薦的 drivers,若是本機上已經安裝則可不再安裝。
brew install minikube
這邊提醒若是使用 Homebrew 遇到 minikube 安裝失敗,我們需要先刪除舊的 minikube links 並連結至新版 minikube。
就這樣安裝完成,也是一樣毫不費力 XD。一樣接著來試試看建立叢集。
minikube start
minikube status
當我們安裝 minikube 時,同時也幫我們安裝好 kubectl(kubernetes-cli) 了。我們可以透過 kubectl 來查看當前的 cluster 環境。
kubectl get nodes
可以看到當前叢集有個 control-plane 節點,以及它的狀態(Status)、Kubernetes 的版本 v1.27.4、何時加入 cluster 的時間(Age)。
kubectl get po -A:
可以看到之前有提到的 kube-apiserver、etcd 和 controller-manager 等。
minikube dashboard
刪除叢集:
minikube delete --all
列印當前的叢集:
minikube profile list
🤹 Exiting due to MK_USAGE_NO_PROFILE: No minikube profile was found.
💡 Suggestion:
You can create one using 'minikube start'.
全刪光。
可以在命令提示視窗使用 kubectl help
來查詢指令用法,除了會說明指令用途外,也會提供範例與 flag 的說明,來幫助使用者更深入瞭解指令的使用方式。
像我看官方文件不懂 kubectl get po
指令時,可以加上 --help
來查看指令的用法:
kubectl get po --help
接下來是介紹 kubeadm,比上面的安裝步驟都來的複雜許多~